package com.danciyixue.boot.dcyx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.danciyixue.boot.dcyx.model.entity.Programs;
import com.danciyixue.boot.dcyx.model.form.ProgramsForm;
import com.danciyixue.boot.dcyx.model.query.ProgramsQuery;
import com.danciyixue.boot.dcyx.model.vo.ProgramsVO;
import com.danciyixue.boot.dcyx.model.vo.CurrentProgramVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 教材服务接口
 */
public interface ProgramsService extends IService<Programs> {

    /**
     *教材信息分页列表
     *
     * @return {@link IPage< ProgramsVO >} 教材信息分页列表
     */
    IPage<ProgramsVO> getProgramsPage(ProgramsQuery queryParams);


    /**
     * 获取教材信息表单数据
     *
     * @param id 教材信息ID
     * @return 教材信息表单数据
     */
     ProgramsForm getProgramsFormData(Long id);

    /**
     * 新增教材信息
     *
     * @param formData 教材信息表单对象
     * @return 是否新增成功
     */
    boolean savePrograms(ProgramsForm formData);

    /**
     * 修改教材信息
     *
     * @param id   教材信息ID
     * @param formData 教材信息表单对象
     * @return 是否修改成功
     */
    boolean updatePrograms(Long id, ProgramsForm formData);

    /**
     * 删除教材
     *
     * @param ids 教材ID，多个以英文逗号(,)分割
     * @return 是否成功
     */
    boolean deletePrograms(String ids);

    /**
     * 根据当前用户Token获取当前教材
     *
     * @return 当前教材信息
     */
    ProgramsVO getCurrentProgramByUserToken();

 }
